<?php

	/**
	 *  Klass för att hantera med arrayer
	 */
	class ArrayHandler
	{
		//en funktion som vänder på ordningen på en array
		//tex. array("Kalle", "Nisse", "Olle") skall bli array("Olle", "Nisse", "Kalle");
		public function ReverseArray($array)
		{
			$result = array();
			
			// Populerar array i omvänd ordning
			for ($i=0; $i < count($array); $i++)
				$result[count($array)-$i-1] = $array[$i];
			
			// Räkna baklänges
			/*for ($i=count($array); $i>0; $i--)
				$result[$i-1] = $array[count($array)-$i];*/
				
			/*for ($i = count($array); $i >= 0; $i--)
			   $result[] = $array[$i];*/
			
			return $result;
		}
		
		//en funktion som returnerar sista elementet i en array
		public function ReturnLastItem($array)
		{
			return $array[count($array)-1];
		}
		
		public function Test()
		{	
		  	//En testarray
			$testArray = array(1, 2, 3, 4, 5, 6, 7);
			//$testArray = array("bosse", "2", "3", "4", "5", "6", "7");
						
			//Testa ReverseArray
			$resultArray = $this->ReverseArray($testArray);
			$reversedArray = array(7, 6, 5, 4, 3, 2, 1);
			//$reversedArray = array("7", "6", "5", "4", "3", "2", "bosse");
			
			for ($i = 0; $i < count($testArray); $i++)
			{
				// Om reverserad array ej innehåller ett element på samma index som rättvänd array
				if (isset($resultArray[$i]) == false)
				{
					echo "ReverseArray test misslyckades: inget index i returnerad array $i </br>";
					return false;
				}
				// Om reverserad arrays index ej överensstämmer med facit-array
				else if ($resultArray[$i] != $reversedArray[$i])
				{
					echo "ReverseArray test misslyckades: felaktig array returnerades  </br>";
					return false;
				}
			}
			
			//Testa ReturnLastItem
			if ($this->ReturnLastItem($testArray) != 7)
			{
				echo "ReturnLastItem test misslyckades: felaktigt returvärde </br>";
				return false;
			}
				
			return true;   	
		}
  }
